package com.ruoyi.web.domain.mes;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.system.domain.vo.PageInfo;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
@TableName(value = "mes_order")
public class MesOrder extends PageInfo {
    private Long pid; // 订单管理表

    @NotBlank(message = "订单编码不能为空")
    private String orderNo; // 订单编码

    private String orderNoString; // 订单编码
    private Integer codeNum; // 编号

    //@NotBlank(message = "书刊编码不能为空")
    private String bookCode; // 书刊编码

    @NotBlank(message = "名称不能为空")
    private String orderName; // 名称

    private String sampleNo; // 清样序号

//    @NotBlank(message = "科目不能为空")
    private String subjectType; // 科目：字典

   // @NotBlank(message = "书号不能为空")
    private String bookNo; // 书号

    // @NotNull(message = "定价不能为空")
    private BigDecimal fixPrice; // 定价

    //@NotBlank(message = "出版社不能为空")
    private String publishingHouse; // 出版社

    private String pubNo; // 出版编码

    // @NotNull(message = "印刷数量不能为空")
    private Integer printingCount; // 印刷数量(册)

    // @NotNull(message = "打包方式不能为空")
    private String packWay; // 打包方式：字典

    // @NotNull(message = "文件日期不能为空")
    private Date fileDate; // 文件日期

    private String applyRadius; // 适用范围

    private Integer printNum; // 印数次数

    // 订单流转过程状态： 1：未提交：保存后，2：已提交：提交或保存并提交后，
    // 3：已下单：被生产单引用，4：已制版：，5：已领版：，6：印刷中：一旦点开工，
    // 7：折页中：，8：装订中：，9：发货中：，10：发货完成
    private Integer status;
    private String remark;
    private String createBy; //
    private Date createTime; //
    private String updateBy; //
    private String produceId; //
    private Date updateTime; //

    private Integer yearTime;
    private Integer monthTime;

    //作废原因
    private String voidReason;

    /*** 包内数量 */
    private String packInNum;
    /*** 印次 */
    private String printNo;
    /*** 打包要求 */
    private String packageRequire;

    @TableField(exist = false)
    private String isUsed; //

    @TableField(exist = false)
    private List<String> breedPidList; // 外键：品种ID

    @TableField(exist = false)
    private String dataType; // 查询的数据类型：1查询封面，2内文

    @TableField(exist = false)
    private String printCategory; // 印刷分类
    @TableField(exist = false)
    private String breedType; // 品种：字典

    @TableField(exist = false)
    private int year; // 出版编码最大年份(查询用)
    @TableField(exist = false)
    private int num; // 出版编码最大编号(查询用)

    // 品种
    @TableField(exist = false)
    private List<MesOrderBreed> orderBreed = new ArrayList<>();
    // 产品
    @TableField(exist = false)
    private List<MesOrderProduct> orderProduct = new ArrayList<>();
    // 内文
    @TableField(exist = false)
    private List<MesOrderNeiwen> orderNeiwen = new ArrayList<>();
    // 封面
    @TableField(exist = false)
    private List<MesOrderCover> orderCover = new ArrayList<>();
}
